File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
using BNG;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace BNG {
/// <summary>
/// Lock joints in place to help with physics handling and parent scaling
/// </summary>
public class JointHelper : MonoBehaviour {
public bool LockXPosition = false;
public bool LockYPosition = false;
public bool LockZPosition = false;
public bool LockXScale = true;
public bool LockYScale = true;
public bool LockZScale = true;
public bool LockXRotation = false;
public bool LockYRotation = false;
public bool LockZRotation = false;
Vector3 initialPosition;
Vector3 initialRotation;
Vector3 initialScale;
Vector3 currentPosition;
Vector3 currentScale;
Vector3 currentRotation;
void Start() {
initialPosition = transform.localPosition;
initialRotation = transform.localEulerAngles;
initialScale = transform.localScale;
}
void lockPosition() {
if (LockXPosition || LockYPosition || LockZPosition) {
currentPosition = transform.localPosition;
transform.localPosition = new Vector3(LockXPosition ? initialPosition.x : currentPosition.x, LockYPosition ? initialPosition.y : currentPosition.y, LockZPosition ? initialPosition.z : currentPosition.z);
}
if (LockXScale || LockYScale || LockZScale) {
currentScale = transform.localScale;
transform.localScale = new Vector3(LockXScale ? initialScale.x : currentScale.x, LockYScale ? initialScale.y : currentScale.y, LockZScale ? initialScale.z : currentScale.z);
}
if (LockXRotation || LockYRotation || LockZRotation) {
currentRotation = transform.localEulerAngles;
transform.localEulerAngles = new Vector3(LockXRotation ? initialRotation.x : currentRotation.x, LockYRotation ? initialRotation.y : currentRotation.y, LockZRotation ? initialRotation.z : currentRotation.z);
}
}
void LateUpdate() {
lockPosition();
}
void FixedUpdate() {
lockPosition();
}
}
}